package com.kaiwukj.android.ufamily.di.module;

import com.kaiwukj.android.mcas.di.scope.ActivityScope;
import com.kaiwukj.android.ufamily.mvp.model.DynamicModel;
import com.kaiwukj.android.ufamily.mvp.ui.page.dynamic.DynamicContract;

import dagger.Module;
import dagger.Provides;

@Module
public class DynamicModule {
    private DynamicContract.PersonIndexView personIndexView;
    private DynamicContract.View view;
    private DynamicContract.PublishView publishView;
    private DynamicContract.TopicView topicView;
    private DynamicContract.FansView fansView;
    private DynamicContract.AboutView aboutView;
    private DynamicContract.ReportView reportView;


    public DynamicModule(DynamicContract.ReportView reportView) {
        this.reportView = reportView;
    }

    public DynamicModule(DynamicContract.AboutView aboutView) {
        this.aboutView = aboutView;
    }

    public DynamicModule(DynamicContract.TopicView view) {
        topicView = view;
    }

    public DynamicModule(DynamicContract.PersonIndexView view) {
        personIndexView = view;
    }

    public DynamicModule(DynamicContract.View view) {
        this.view = view;
    }

    public DynamicModule(DynamicContract.PublishView view) {
        this.publishView = view;
    }

    public DynamicModule(DynamicContract.FansView view) {
        this.fansView = view;
    }


    @ActivityScope
    @Provides
    public DynamicContract.ReportView provideReportView() {
        return reportView;
    }

    @ActivityScope
    @Provides
    public DynamicContract.AboutView provideAboutView() {
        return aboutView;
    }

    @ActivityScope
    @Provides
    public DynamicContract.FansView provideFansView() {
        return fansView;
    }

    @ActivityScope
    @Provides
    public DynamicContract.TopicView provideTopicView() {
        return topicView;
    }

    @ActivityScope
    @Provides
    public DynamicContract.PublishView providePublishView() {
        return publishView;
    }

    @ActivityScope
    @Provides
    public DynamicContract.PersonIndexView providePersonView() {
        return personIndexView;
    }

    @ActivityScope
    @Provides
    public DynamicContract.View provideView() {
        return view;
    }

    @ActivityScope
    @Provides
    public DynamicContract.Model provideModel(DynamicModel model) {
        return model;
    }
}
